/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import dao.CategoriaDAO;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.CategoriaMODEL;
import table.categoria.CategoriaTable;

/**
 *
 * @author Welisson
 */
public class CategoriaController extends GenericController {
    public boolean salvar(String categoria, CategoriaTable ctbl){
        CategoriaMODEL cate = new CategoriaMODEL();
        
        cate.setCategoria(categoria);
        
        try {
            
            int id = new CategoriaDAO().insert(cate);
            if(id == -1){
                return false;
            }else{
                cate.setId(id);
                ctbl.addCategoria(cate);
                return true;
            }
        } catch (SQLException ex) {
            ex.printStackTrace(System.out);
            return false;
        }
        
    }
    
    public boolean editar(int id, String categoria, CategoriaTable ctbl, int linhaSelecionada){
        CategoriaMODEL cate = new CategoriaMODEL();
        cate.setId(id);
        cate.setCategoria(categoria);
        
        if(new CategoriaDAO().update(cate)){
            ctbl.updateCategoria(linhaSelecionada, cate);
            return true;
        }
        return false;
    }
    
    public boolean excluir(int id, CategoriaTable ctbl, int linhaSelecionada){
        
        if(new CategoriaDAO().delete(id)){
            ctbl.removeCategoria(linhaSelecionada);
            return true;
        }
        return false;
    }
    
    public List<CategoriaMODEL> listar(){
        try {
            return new CategoriaDAO().findCategoria();
        } catch (SQLException ex) {
            ex.printStackTrace(System.out);
            List<CategoriaMODEL> categoria = new ArrayList<CategoriaMODEL>(); 
            return categoria;
        }
        
    }
}
